x86 guest pagetable walker: check for invalid bits in pagetable
authorKeir Fraser <keir@xen.org>
Mon, 18 Oct 2010 10:30:10 +0000 (11:30 +0100)
committerKeir Fraser <keir@xen.org>
Mon, 18 Oct 2010 10:30:10 +0000 (11:30 +0100)
commit51ce0a98c8531bb33324f6f1f8b72a9d761775ed
treee276fe081f46e67a422d6466adceb695a2fc3efb
parent92d4a8cf459ea72bf0c8300dc6f3a897f0d62633
x86 guest pagetable walker: check for invalid bits in pagetable
entries.

Some bits are reserved in x86 pagetable entries and must be zero; the
MMU should raise a pagefault if it sees them, with bit 3 set in the
error code.  Xen's software pagetable walker hasn't been doing this,
which has been OK because no guest OSes actually have invalid bits set
except in error cases where things are already very wrong.

Xen's shadow pagetable code deliberately sets these bits as part of
the not-present-entry fast path, so if we're to support
shadow-on-shadow nested HVM, we need to start checking them.

Signed-off-by: Tim Deeegan <Tim.Deegan@citrix.com>
xen/arch/x86/cpu/mtrr/main.c
xen/arch/x86/mm/guest_walk.c
xen/arch/x86/mm/hap/guest_walk.c
xen/arch/x86/mm/shadow/multi.c
xen/include/asm-x86/guest_pt.h
xen/include/asm-x86/processor.h